<!DOCTYPE html>
<html xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
	<meta name="renderer" content="webkit">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<meta http-equiv="Access-Control-Allow-Origin" content="*">
	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
	<meta name="apple-mobile-web-app-status-bar-style" content="black">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<meta name="format-detection" content="telephone=no">
	<link rel="icon" href="/favicon.ico">
	<link rel="stylesheet" href="/resources/layui/css/layui.css" media="all" />
	<link rel="stylesheet" href="/resources/css/index.css" media="all" />
	<link rel="stylesheet" href="/resources/layui_ext/dtree/font/dtreefont.css" media="all" />
	<link rel="stylesheet" href="/resources/layui_ext/dtree/dtree.css" media="all" />
</head>
<body>
	<fieldset class="layui-elem-field">
  	<legend>条件选择</legend>
 	 <div class="layui-field-box">
   		<form action="" class="layui-form layui-form-pane">
   			<div class="layui-form-item" align="left">
   			<div class="layui-inline">
   				<label class="layui-form-label">权限名称</label>
    			<div class="layui-input-inline">
      				<input type="text" name="title"  placeholder="请输入权限名称" autocomplete="off" class="layui-input">
    			</div>
   			</div>
   			
   			<div class="layui-inline">
   				<label class="layui-form-label">权限编码</label>
    			<div class="layui-input-inline">
      				<input type="text" name="percode"  placeholder="请输入权限编码" autocomplete="off" class="layui-input">
    			</div>
   			</div>
   			
   			<div class="layui-inline">
    			<div class="layui-input-inline">
      				 <button class="layui-btn" lay-submit="" lay-filter="search"  id="search"><span class="layui-icon layui-icon-search"></span>搜索</button>
      				 <button type="reset" class="layui-btn layui-btn-primary"><span class="layui-icon layui-icon-refresh-1"></span>重置</button>
    			</div>
   			</div>	
   			
   			</div>
   			
   		</form>
 	 </div>
</fieldset>
	<table id="permission" lay-filter="permission"></table>

<div>
	<div id="toolbar" style="display: none;">
		<button class="layui-btn layui-btn-sm layui-btn-warm" lay-event="add"><span class="layui-icon layui-icon-add-1" shiro:hasPermission="permission:create"></span>添加权限</button>
	</div>
	<div id="rowBtn" style="display: none;">
		<button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="update"><span class="layui-icon layui-icon-edit" shiro:hasPermission="permission:update"></span>更新</button>
		<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="delete"><span class="layui-icon layui-icon-delete" shiro:hasPermission="permission:delete"></span>删除</button>
	</div>
</div>

<div style="display: none; padding: 20px" id="permissionadd" >
	<form action="" class = "layui-form-pane layui-form"  method="post" id="form"  lay-filter="form">
		<div class="layui-form-item">
    		<label class="layui-form-label">所属菜单</label>
   			<div class="layui-input-block">
   				 <input type="hidden" name="pid" id ="pid" lay-verify="required">
     			 <ul id="leftDtree" class="leftDtree" data-id="0"></ul>
   			</div>
  		</div>
  		
  		<div class="layui-form-item">
		    <label class="layui-form-label">权限名称</label>
		    <div class="layui-input-block">
		    		<input type="hidden" name="id">
		    	 <input type="text" name="title" lay-verify="required" autocomplete="off" placeholder="请输入权限名称" class="layui-input">
		    </div>
 	   </div>
 	   
 	   
 	   <div class="layui-form-item">
 	   		<div class="layui-inline">
		    <label class="layui-form-label">权限编码</label>
		    <div class="layui-input-block">
		    	<input type="text" name="percode" autocomplete="off" placeholder="请输入权限编码" class="layui-input">
		    </div>
		    </div>
		    
		    <div class="layui-inline">
		    <label class="layui-form-label">排序码</label>
		    <div class="layui-input-inline">
		     	<input type="text" name="ordernum" id="ordernum" lay-verify="required" autocomplete="off" placeholder="请输入排序码" class="layui-input">
		    </div>
		    </div>
 	   </div>
 	   
 	<div class="layui-form-item">
	    <div class="layui-inline">
	      <label class="layui-form-label">是否展开</label>
	      <div class="layui-input-inline">
	        <input type="radio" name="open" value="1" title="展开" checked="">
	        <input type="radio" name="open" value="0" title="不展开" >
	      </div>
	    </div>
	    
	    <div class="layui-inline">
	      <label class="layui-form-label">是否可用</label>
	      <div class="layui-input-inline">
	        <input type="radio" name="available" value="1" title="可用" checked="">
	        <input type="radio" name="available" value="0" title="不可用" >
	      </div>
	    </div>
	  </div>
 		
 		<div class="layui-form-item" >
    		<div class="layui-input-block" style="text-align: center;">
      			<button type="submit" class="layui-btn" lay-submit="" lay-filter="dosubmit"><span class="layui-icon layui-icon-ok">提交</button>
     			<button type="reset" class="layui-btn layui-btn-primary"><span class="layui-icon layui-icon-refresh-1"></span>重置</button>
    		</div>
  		</div> 
	</form>
</div>

<script type="text/javascript" src="/resources/layui/layui.js"></script>
<script type="text/javascript">
	var t;
	var selectTree;
	layui.extend({
	    dtree: '/resources/layui_ext/dtree/dtree'   // {/}的意思即代表采用自有路径，即不跟随 base 路径
	  }).use(["jquery","layer","form","table","dtree"],function(){
		var $ = layui.jquery;
		var layer = layui.layer;	
		var form = layui.form;	
		var table = layui.table;
		var dtree = layui.dtree;
		//table 初始化开始
		t = table.render({
			elem:"#permission",
			page:true,
			url:"/sys/permission/list",
			height: 'full-220',
			toolbar:"#toolbar",
			parseData:function(rs){
				if(rs.code != 200){
					layer.msg(rs.msg);
					return false;
				}
				 return {
				      "code": rs.code, //解析接口状态
				      "msg": rs.msg, //解析提示文本
				      "count": rs.data.count, //解析数据长度
				      "data": rs.data.data //解析数据列表
				    };
			},
			response:{
				statusCode: 200
			},
			done: function(res, curr, count){
			    //如果是异步请求数据方式，res即为你接口返回的信息。
			    //如果是直接赋值的方式，res即为：{data: [], count: 99} data为当前页数据、count为数据总长度
			    console.log(res);
			    //得到当前页码
			    console.log(curr); 
			    //得到数据总量
			    console.log(count);
			    if(res.data.length == 0 && curr != 1){
			    	t.reload({
			    		page:{
			    			curr:curr - 1
			    		}
			    	});
			    }
			  },
			cols:[ [
				 {field: 'id', title: 'ID', sort: true,align:"center"},
				 {field: 'pid', title: '父ID', sort: true,align:"center"},
			     {field: 'title', title: '权限名称',align:"center"},
			     {field: 'percode', title: '权限编码',align:"center"},
			     {field: 'available', title: '是否有效',align:"center",templet:function(d){
			    	 return d.available==1?"<font color=blue>有效</font>":"<font color=red>无效</font>"
			     }},
			     {field: 'ordernum', title: '排序数字',align:"center"},
			     { title: '操作',toolbar:"#rowBtn",align:"center",width:"200"}
			] ]
		});
		//table 初始化结束
		form.on("submit(search)",function(d){
			t.reload({
				where:d.field,
				page:{
					curr:1
				}
			});	
			return false;
		});
		//头监听事件开始
		table.on('toolbar(permission)', function(obj){
			  var checkStatus = table.checkStatus(obj.config.id);
			  switch(obj.event){
			    case 'add':
			      add()
			    break;
			  };
		});
		//头监听事件结束
		
		//新增开始
		var layerIndex;
		var url;
		 function add(){
			layerIndex=layer.open({
				 	   type: 1, 
				 	   content: $('#permissionadd'),
				       title:"新增菜单",
				       area:['800px','550px'],
				       success: function(){
				    	   $("#form")[0].reset();
				    	   $("#pid").val("");
				    	   url="/sys/permission/getOrdernum";
				    		$.post(url,function(rs){
				    			console.log(rs);
				    			$("#ordernum").val(rs.value);
				    		});
				    		url="/sys/permission/addPermission"
					   }
			      });
		     };
		//新增结束
		
		//监听弹出层form表单提交 开始
		form.on("submit(dosubmit)",function(d){
			//对form表单进行序列化
			var data = $("#form").serialize();
			$.post(url,data,function(rs){
				if(rs.code == 200){
					t.reload();
					selectTree.reload();
					window.parent.left.DemoTree.reload();
				}
				layer.msg(rs.msg);
				layer.close(layerIndex);
			});
			return false;
		});
		//监听弹出层form表单提交 结束
		
		
		//行监听事件开始
		table.on('tool(permission)', function(obj){ 
			var data = obj.data;
			switch(obj.event){
				case 'update':
					update(data);
				break;
				case 'delete':
					deleteOne(data);
				break;
			}
		});
		//行监听事件结束
		
		//跟新数据 开始
		function update(data){
			layerIndex = layer.open({
				   type: 1, 
			 	   content: $('#permissionadd'),
			 	   title:"修改菜单",
			       area:['800px','500px'],
			       success: function(){
			    	  $("#form")[0].reset(); 
			    		dtree.dataInit("leftDtree", data.pid);
			    		dtree.setSelectValue("leftDtree");
			    	 	form.val("form",data);
			    	 	url="/sys/permission/updatePermission";
				  }
			});
		}
		
		//跟新数据 结束
		
		//删除单个数据 开始
		function deleteOne(data){
			var id = data.id;
				layer.confirm('是否删除该权限?', {icon: 3, title:'提示'}, function(index){
					$.post("/sys/permission/deleteOne",{"id":id},function(rs){
						if(rs.code == 200){
							t.reload();
							//删除权限 菜单树不需要进行更新
							/* selectTree.reload();
							window.parent.left.DemoTree.reload(); */
						}	
						layer.msg(rs.msg);
					});
					layer.close(index);
				});
			};
		//删除单个数据 结束
		
		//初始化下拉框的树 开始
		selectTree = dtree.renderSelect({
				   elem: "#leftDtree",
				   width: "100%",
				   dataStyle: "layuiStyle",  //使用layui风格的数据格式
				   dataFormat: "list",  //配置data的风格为list
				   response:{message:"msg",statusCode:200},  //修改response中返回数据的定义
				   url: "/sys/permission/dtree" // 使用url加载（可与data加载同时存在）
		});
		//初始化下拉框的树 结束
		
		//监听树的点击事件 给id赋值   开始
 		 dtree.on("node('leftDtree')" ,function(obj){
     			$("#pid").val(obj.param.nodeId);
   			 });
		//监听树的点击事件 给id赋值   结束
 		
	});
	function fun (id){
		t.reload({
			where:{
				id:id
			},
			page:{
				curr:1
			}
		});
	}
</script>
</body>
</html>